home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Belgian Amiga Club - ADF Collection
/
BS1 part 34.zip
/
BS1 part 34
/
Codex ass dev system v1.10.adf
/
include
/
workbench
/
workbench.i
< prev
next >
Wrap
Text File
|
1988-09-19
|
6KB
|
169 lines
*********************************************************************
*
* workbench.h
*
* Commodore-Amiga, Inc.
*
* $Header: workbench.i,v 31.2 85/09/02 21:32:18 neil Exp $
*
* $Locker: $
*
*********************************************************************
IFND EXEC_TYPES_I
INCLUDE "exec/types.i"
ENDC !EXEC_TYPES_I
IFND EXEC_NODES_I
INCLUDE "exec/nodes.i"
ENDC !EXEC_NODES_I
IFND EXEC_LISTS_I
INCLUDE "exec/lists.i"
ENDC !EXEC_LISTS_I
IFND EXEC_TASKS_I
INCLUDE "exec/tasks.i"
ENDC !EXEC_TASKS_I
IFND INTUITION_INTUITION_I
INCLUDE "intuition/intuition.i"
ENDC !INTUITION_INTUITION_I
; the Workbench object types
WBDISK EQU 1
WBDRAWER EQU 2
WBTOOL EQU 3
WBPROJECT EQU 4
WBGARBAGE EQU 5
WBDEVICE EQU 6
WBKICK EQU 7
; the main workbench object structure
STRUCTURE DrawerData,0
STRUCT dd_NewWindow,nw_SIZE ; args to open window
LONG dd_CurrentX ; current x coordinate of origin
LONG dd_CurrentY ; current y coordinate of origin
LONG dd_MinX ; smallest x coordinate in window
LONG dd_MinY ; smallest y coordinate in window
LONG dd_MaxX ; largest x coordinate in window
LONG dd_MaxY ; largest y coordinate in window
STRUCT dd_HorizScroll,gg_SIZEOF
STRUCT dd_VertScroll,gg_SIZEOF
STRUCT dd_UpMove,gg_SIZEOF
STRUCT dd_DownMove,gg_SIZEOF
STRUCT dd_LeftMove,gg_SIZEOF
STRUCT dd_RightMove,gg_SIZEOF
STRUCT dd_HorizImage,ig_SIZEOF
STRUCT dd_VertImage,ig_SIZEOF
STRUCT dd_HorizProp,pi_SIZEOF
STRUCT dd_VertProp,pi_SIZEOF
APTR dd_DrawerWin ; pointer to drawers window
APTR dd_Object ; back pointer to drawer object
STRUCT dd_Children,LN_SIZE ; where our children hang out
LONG dd_Lock
LABEL dd_SIZEOF
; the amount of DrawerData actually written to disk
DRAWERDATAFILESIZE EQU (nw_SIZE+2*(4))
STRUCTURE DiskObject,0
UWORD do_Magic ; a magic num at the start of the file
UWORD do_Version ; a version number, so we can change it
STRUCT do_Gadget,gg_SIZEOF ; a copy of in core gadget
UWORD do_Type
APTR do_DefaultTool
APTR do_ToolTypes
LONG do_CurrentX
LONG do_CurrentY
APTR do_DrawerData
APTR do_ToolWindow ; only applies to tools
LONG do_StackSize ; only applies to tools
LABEL do_SIZEOF
WB_DISKMAGIC EQU $e310 ; a magic number, not easily impersonated
WB_DISKVERSION EQU 1 ; our current version number
STRUCTURE FreeList,0
WORD fl_NumFree
STRUCT fl_MemList,LH_SIZE
; weird name to avoid conflicts with FileLocks
LABEL FreeList_SIZEOF
STRUCTURE WBObject,0
STRUCT wo_MasterNode,LN_SIZE ; all objects are on this list
STRUCT wo_Siblings,LN_SIZE ; list of drawer members
STRUCT wo_SelectNode,LN_SIZE ; list of all selected objects
STRUCT wo_UtilityNode,LN_SIZE ; function specific linkages
APTR wo_Parent
; object flags -- see below for definitions
UBYTE wo_Flags
UBYTE wo_Type ; what flavor object is this?
USHORT wo_UseCount ; number of references to this obj
APTR wo_Name ; this object's textual name
SHORT wo_NameXOffset ; where to put the name
SHORT wo_NameYOffset
APTR wo_DefaultTool
APTR wo_DrawerData ; if this is a drawer or disk
APTR wo_IconWin ; each object's icon lives here
LONG wo_CurrentX ; virtual X in drawer
LONG wo_CurrentY ; virtual Y in drawer
APTR wo_ToolTypes ; the types for this tool
STRUCT wo_Gadget,gg_SIZEOF ; NOT a ptr, but an instance of it
STRUCT wo_FreeList,FreeList_SIZEOF ; this objects free list
APTR wo_ToolWindow ; character string for tool's window
LONG wo_StackSize ; how much stack to give to this
LONG wo_Lock ; if this tool is in the backdrop
LABEL wo_SIZEOF
; workbench object flags
BITDEF WO,IconDisp,7 ; icon is currently in a window
BITDEF WO,DrawerOpen,6 ; we're a drawer, and it is open
BITDEF WO,Selected,5 ; our icon is selected
BITDEF WO,Background,4 ; set if icon is in background
* each message that comes into the WorkBenchPort must have a type field
* in the preceeding short. These are the defines for this type
*
MTYPE_PSTD EQU 1 ; a "standard Potion" message
MTYPE_TOOLEXIT EQU 2 ; exit message from our tools
MTYPE_DISKCHANGE EQU 3 ; dos telling us of a disk change
MTYPE_TIMER EQU 4 ; we got a timer tick
MTYPE_CLOSEDOWN EQU 5 ; <unimplemented>
MTYPE_IOPROC EQU 6 ; <unimplemented>
; we use the gadget id field to encode some special information
GID_WBOBJECT EQU 0 ; a normal workbench object
GID_HORIZSCROLL EQU 1 ; the horizontal scroll gadget for a drawer
GID_VERTSCROLL EQU 2 ; the vertical scroll gadget for a drawer
GID_LEFTSCROLL EQU 3 ; move one window left
GID_RIGHTSCROLL EQU 4 ; move one window right
GID_UPSCROLL EQU 5 ; move one window up
GID_DOWNSCROLL EQU 6 ; move one window down
GID_NAME EQU 7 ; the name field for an object
* workbench does different complement modes for its gadgets.
* It supports separate images, complement mode, and backfill mode.
* The first two are identical to intuitions GADGIMAGE and GADGHCOMP.
* backfill is similar to GADGHCOMP, but the region outside of the
* image (which normally would be color three when complemented)
* is flood-filled to color zero.
*
GADGBACKFILL EQU $0001
* if an icon does not really live anywhere, set its current position
* to here
*
NO_ICON_POSITION EQU ($80000000)